﻿using System.Windows.Forms;
namespace TwinHead.Frameworks.WindowForms.KeyActions
{
    /// <summary>
    /// 단축키와 연결된 액션에 대한 인터페이스 입니다.
    /// </summary>
    public interface IKeyAction
    {
        /// <summary>
        /// 이 액션을 호출하는데 필요한 단축키를 표시하는 문자열을 설정하거나 반환합니다.
        /// </summary>
        string DisplayText { get; set; }

        /// <summary>
        /// 어떤 기능을 하는 액션인지 설명하는 문자열을 설정하거나 반환합니다.
        /// </summary>
        string Description { get; set; }

        /// <summary>
        /// 이 액션과 연결된 기능을 호출하여 실행합니다.
        /// </summary>
        /// <param name="ctl">단축키 액션이 적용되는 콘트롤</param>
        /// <returns></returns>
        bool Execute( Control ctl );

        /// <summary>
        /// 이 액션과 연결된 기능을 호출하여 실행합니다.
        /// </summary>
        /// <param name="ctl">단축키 액션이 적용되는 콘트롤</param>
        /// <returns></returns>
        bool Execute( object ctl );
    }
}
